package com.ldkj.panzh.param;

import lombok.Data;

import java.util.List;

/**
 * 查询园区卡口设备列表 参数
 * 对应API: /api/resource/v1/monitoringPointDevice/search
 *
 * @author qiancheng
 * @date 2025-11-20
 */
@Data
public class MonitoringPointDeviceParam extends BaseParam {

    /**
     * 名称，模糊搜索
     * 若包含中文，最大长度指不超过按照指定编码的字节长度，即getBytes("utf-8").length
     * 最大长度：32
     * 可选项
     */
    private String name;

    /**
     * 区域编号列表（regionIndexCode）
     * 可为空
     * 支持批量查询，最大 1000 个
     * 单个长度 <= 64 字节
     */
    private List<String> regionIndexCodes;

    /**
     * 是否包含下级区域
     * 注意：参数isSubRegion和regionIndexCodes必须同时存在，且regionIndexCodes只能指定一个区域编码
     * 可选项
     */
    private Boolean isSubRegion;

    /**
     * 当前页码
     * 必填，0 < pageNo
     */
    private Integer pageNo = 1;

    /**
     * 分页大小
     * 必填，0 < pageSize <= 1000
     */
    private Integer pageSize = 1000;

    /**
     * 设备能力集（含设备上的智能能力）
     * 详见附录A.44
     * 可选项
     */
    private List<String> capabilitySet;

    /**
     * 排序字段
     * 注意：排序字段必须是查询条件，否则返回参数错误
     * 可选项
     */
    private String orderBy;

    /**
     * 排序方式
     * 降序：desc
     * 升序：asc
     * 可选项
     */
    private String orderType;
}
